﻿using System.Collections.Generic;
using System.Threading.Tasks;
using com.IronOne.BoardPACWinAppBO.General;
using com.IronOne.BoardPACWinAppBO.Paper;
using com.IronOne.BoardPACWinAppBO.Settings;

namespace com.IronOne.BoardPACWinAppService.Sync
{
    public interface ISyncService
    {
        Task<AppSettingModel> ReadAppSettingsFromDb();
        Task<ResponseDataModel> DataDownload();
        Task<ResponseDataModel> DataUpload();

        Task<ResponseDataModel> DocumentDownload(int meetingId = 0, int documentType = 0, int paperId = 0,
            int versionId = 0);

        Task<ResponseDataModel> AnnotationDownload(PaperModel annotModel);
        Task<bool> SaveEncryptedFile(byte[] fileData, int paperId = 0, int versionId = 0);
        Task<bool> SaveEncryptedPastPaperFile(byte[] fileData, int paperId = 0, int versionId = 0);
        Task<List<LogDataModel>> GetLogRecords();
        Task<List<PaperModel>> GetPapersToDownload();
        Task<List<PaperModel>> GetAnnotationFilesToDownload();

        Task<ResponseDataModel> BackupAnnotations(PaperModel data);

        Task<List<PaperModel>> DownloadRestoreNeededAnnotationsList();

        Task<ResponseDataModel> AnnotationRestore(PaperModel model);
    }
}